#ifndef HGL_RECT_SCOPE_CPP
#define HGL_RECT_SCOPE_CPP

#include<hgl/type/RectScope.h>
namespace hgl
{
	/**
	* 本类构造函数
	*/
	template<typename T>
	RectScope2<T>::RectScope2()
	{
		Left=0;
		Top=0;
		Width=0;
		Height=0;
	}

	/**
	* 本类构造函数
	* @param l 矩形最左边的坐标值
	* @param t 矩形最上边的坐标值
	* @param w 矩形的宽度
	* @param h 矩形的高度
	*/
	template<typename T>
	RectScope2<T>::RectScope2(T l,T t,T w,T h)
	{
		Left=l;
		Top=t;
		Width=w;
		Height=h;
	}

	template<typename T> template<typename N>
	RectScope2<T>::RectScope2(const RectScope2<N> &rs)
	{
		Left	=rs.Left;
		Top		=rs.Top;
		Width	=rs.Width;
		Height	=rs.Height;
	}

	/**
	* 设置数据
	* @param l 矩形最左边的坐标值
	* @param t 矩形最上边的坐标值
	* @param w 矩形的宽度
	* @param h 矩形的高度
	*/
	template<typename T>
	void RectScope2<T>::Set(T l,T t,T w,T h)
	{
		Left=l;
		Top=t;
		Width=w;
		Height=h;
	}

	/**
	* 求坐标点x,y,z是否在这个矩形内
	* @param x X坐标
	* @param y Y坐标
	* @return 点x,y,z是否在矩形范围内
	*/
	template<typename T>
	bool RectScope2<T>::PointIn(T x,T y) const
	{
		T pos;

		pos=x-Left;
		if(pos<0||pos>=Width)return(false);

		pos=y-Top;
		if(pos<0||pos>=Height)return(false);

		return(true);
	}
}//namespace hgl
#endif//HGL_RECT_SCOPE_CPP
